Use of computing devices is becoming more ubiquitous by the day. Computing devices range from standard desktop computers to wearable computing technology and beyond. One area of computing devices that has grown in recent years is in the context of image rendering, such as rendering of games, video streams, etc., which typically rely on a graphics processing unit (GPU) to render graphics from a computing device to a display device based on rendering instructions received from the computing device. Applications are available for playing back, or re-executing, rendering instructions sent to the GPU. For example, such applications can capture graphics processing operations sent to the GPU, by a central processing unit (CPU), analyze the graphics processing operations to determine memory modified by the GPU in executing the graphics processing operations, and accordingly store the graphics processing operations sent to the GPU and the determined modified memory.
Subsequently, the application can playback the graphics processing operations by rebuilding the memory based on the determined modified memory, and sending the stored graphics processing operations back to the GPU for execution. This process can be useful in debugging graphics operations or otherwise evaluating the GPU performance based on modifying operating parameters, etc. This process, however, can also be time consuming and proprietary in requiring the CPU to analyze each possible GPU graphics processing operation.